home *** CD-ROM | disk | FTP | other *** search
/ CD BIT 75 / CD BIT 75.iso / Software / gimp-2.0.5-i586-setup / gimp-2.0.5-i586-setup.exe / {app} / share / gimp / 2.0 / scripts / coolmetal-logo.scm < prev    next >
Encoding:
GIMP Script-Fu Script  |  2004-09-26  |  6.1 KB  |  167 lines

  1. ;  COOL-METAL
  2. ;  Create a text effect that looks like metal with a reflection of
  3. ;  the horizon, a reflection of the text in the mirrored ground, and
  4. ;  an interesting dropshadow
  5. ;  This script was inspired by Rob Malda's 'coolmetal.gif' graphic
  6.  
  7. (define (apply-cool-metal-logo-effect img
  8.                       logo-layer
  9.                       size
  10.                       bg-color
  11.                       gradient
  12.                       gradient-reverse)
  13.   (let* ((feather (/ size 5))
  14.      (smear 7.5)
  15.      (period (/ size 3))
  16.      (amplitude (/ size 40))
  17.      (shrink (+ 1 (/ size 30)))
  18.      (depth (/ size 20))
  19.      (width (car (gimp-drawable-width logo-layer)))
  20.      (height (car (gimp-drawable-height logo-layer)))
  21.      (posx (- (car (gimp-drawable-offsets logo-layer))))
  22.      (posy (- (cadr (gimp-drawable-offsets logo-layer))))
  23.      (img-width (+ width (* 0.15 height) 10))
  24.      (img-height (+ (* 1.85 height) 10))
  25.      (bg-layer (car (gimp-layer-new img img-width img-height RGB-IMAGE "Background" 100 NORMAL-MODE)))
  26.      (shadow-layer (car (gimp-layer-new img img-width img-height RGBA-IMAGE "Shadow" 100 NORMAL-MODE)))
  27.      (reflect-layer (car (gimp-layer-new img width height RGBA-IMAGE "Reflection" 100 NORMAL-MODE)))
  28.      (channel 0)
  29.      (fs 0)
  30.      (layer-mask 0)
  31.      (old-gradient (car (gimp-gradients-get-gradient)))
  32.      (old-fg (car (gimp-palette-get-foreground)))
  33.      (old-bg (car (gimp-palette-get-background))))
  34.  
  35.     (gimp-selection-none img)
  36.     (gimp-image-resize img img-width img-height posx posy)
  37.     (gimp-image-add-layer img bg-layer 1)
  38.     (gimp-image-add-layer img reflect-layer 1)
  39.     (gimp-image-add-layer img shadow-layer 1)
  40.     (gimp-layer-set-preserve-trans logo-layer TRUE)
  41.  
  42.     (gimp-palette-set-background bg-color)
  43.     (gimp-edit-fill bg-layer BACKGROUND-FILL)
  44.     (gimp-edit-clear reflect-layer)
  45.     (gimp-palette-set-background '(0 0 0))
  46.     (gimp-edit-fill shadow-layer BACKGROUND-FILL)
  47.  
  48.     (gimp-gradients-set-gradient gradient)
  49.  
  50.     (gimp-edit-blend logo-layer CUSTOM-MODE NORMAL-MODE
  51.              GRADIENT-LINEAR 100 0 REPEAT-NONE gradient-reverse
  52.              FALSE 0 0 TRUE
  53.              0 0 0 (+ height 5))
  54.  
  55.     (gimp-rect-select img 0 (- (/ height 2) feather) img-width (* 2 feather) CHANNEL-OP-REPLACE 0 0)
  56.     (plug-in-gauss-iir 1 img logo-layer smear TRUE TRUE)
  57.     (gimp-selection-none img)
  58.     (plug-in-ripple 1 img logo-layer period amplitude 1 0 1 TRUE FALSE)
  59.     (gimp-layer-translate logo-layer 5 5)
  60.     (gimp-layer-resize logo-layer img-width img-height 5 5)
  61.  
  62.     (gimp-selection-layer-alpha logo-layer)
  63.     (set! channel (car (gimp-selection-save img)))
  64.     (gimp-selection-shrink img shrink)
  65.     (gimp-selection-invert img)
  66.     (plug-in-gauss-rle 1 img channel feather TRUE TRUE)
  67.     (gimp-selection-layer-alpha logo-layer)
  68.     (gimp-selection-invert img)
  69.     (gimp-palette-set-background '(0 0 0))
  70.     (gimp-edit-fill channel BACKGROUND-FILL)
  71.     (gimp-selection-none img)
  72.  
  73.     (plug-in-bump-map 1 img logo-layer channel 135 45 depth 0 0 0 0 FALSE FALSE 0)
  74.  
  75.     (gimp-selection-layer-alpha logo-layer)
  76.     (set! fs (car (gimp-selection-float shadow-layer 0 0)))
  77.     (gimp-edit-clear shadow-layer)
  78.     (gimp-perspective fs FALSE
  79.               (+ 5 (* 0.15 height)) (- height (* 0.15 height))
  80.               (+ 5 width (* 0.15 height)) (- height (* 0.15 height))
  81.               5 height
  82.               (+ 5 width) height)
  83.     (gimp-floating-sel-anchor fs)
  84.     (plug-in-gauss-rle 1 img shadow-layer smear TRUE TRUE)
  85.  
  86.     (gimp-rect-select img 5 5 width height CHANNEL-OP-REPLACE FALSE 0)
  87.     (gimp-edit-copy logo-layer)
  88.     (set! fs (car (gimp-edit-paste reflect-layer FALSE)))
  89.     (gimp-floating-sel-anchor fs)
  90.     (gimp-scale reflect-layer FALSE 0 0 width (* 0.85 height))
  91.     (gimp-flip reflect-layer 1)
  92.     (gimp-layer-set-offsets reflect-layer 5 (+ 3 height))
  93.  
  94.     (set! layer-mask (car (gimp-layer-create-mask reflect-layer ADD-WHITE-MASK)))
  95.     (gimp-layer-add-mask reflect-layer layer-mask)
  96.     (gimp-palette-set-foreground '(255 255 255))
  97.     (gimp-palette-set-background '(0 0 0))
  98.     (gimp-edit-blend layer-mask FG-BG-RGB-MODE NORMAL-MODE
  99.              GRADIENT-LINEAR 100 0 REPEAT-NONE FALSE
  100.              FALSE 0 0 TRUE
  101.              0 (- (/ height 2)) 0 height)
  102.  
  103.     (gimp-image-remove-channel img channel)
  104.  
  105.     (gimp-gradients-set-gradient old-gradient)
  106.     (gimp-palette-set-background old-bg)
  107.     (gimp-palette-set-foreground old-fg)))
  108.  
  109.  
  110. (define (script-fu-cool-metal-logo-alpha img
  111.                      logo-layer
  112.                      size
  113.                      bg-color
  114.                      gradient
  115.                      gradient-reverse)
  116.   (begin
  117.     (gimp-image-undo-group-start img)
  118.     (apply-cool-metal-logo-effect img logo-layer size bg-color
  119.                   gradient gradient-reverse)
  120.     (gimp-image-undo-group-end img)
  121.     (gimp-displays-flush)))
  122.  
  123. (script-fu-register "script-fu-cool-metal-logo-alpha"
  124.             _"<Image>/Script-Fu/Alpha to Logo/Cool _Metal..."
  125.             "Metallic logos with reflections and perspective shadows"
  126.             "Spencer Kimball & Rob Malda"
  127.             "Spencer Kimball & Rob Malda"
  128.             "1997"
  129.             "RGBA"
  130.                     SF-IMAGE      "Image"                 0
  131.                     SF-DRAWABLE   "Drawable"              0
  132.             SF-ADJUSTMENT _"Effect Size (pixels)" '(100 2 1000 1 10 0 1)
  133.             SF-COLOR      _"Background Color"     '(255 255 255)
  134.             SF-GRADIENT   _"Gradient"             "Horizon 1"
  135.             SF-TOGGLE     _"Gradient Reverse"     FALSE)
  136.  
  137.  
  138. (define (script-fu-cool-metal-logo text
  139.                    size
  140.                    font
  141.                    bg-color
  142.                    gradient
  143.                    gradient-reverse)
  144.   (let* ((img (car (gimp-image-new 256 256 RGB)))
  145.      (text-layer (car (gimp-text-fontname img -1 0 0 text 0 TRUE
  146.                           size PIXELS font))))
  147.     (gimp-image-undo-disable img)
  148.     (gimp-drawable-set-name text-layer text)
  149.     (apply-cool-metal-logo-effect img text-layer size bg-color
  150.                   gradient gradient-reverse)
  151.     (gimp-image-undo-enable img)
  152.     (gimp-display-new img)))
  153.  
  154. (script-fu-register "script-fu-cool-metal-logo"
  155.             _"<Toolbox>/Xtns/Script-Fu/Logos/Cool _Metal..."
  156.             "Metallic logos with reflections and perspective shadows"
  157.             "Spencer Kimball & Rob Malda"
  158.             "Spencer Kimball & Rob Malda"
  159.             "1997"
  160.             ""
  161.             SF-STRING     _"Text"               "Cool Metal"
  162.             SF-ADJUSTMENT _"Font Size (pixels)" '(100 2 1000 1 10 0 1)
  163.             SF-FONT       _"Font"               "Crillee"
  164.             SF-COLOR      _"Background Color"   '(255 255 255)
  165.             SF-GRADIENT   _"Gradient"           "Horizon 1"
  166.             SF-TOGGLE     _"Gradient Reverse"   FALSE)
  167.